Next.js template
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

[dataId].js 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import DataDetailsCard from '../../components/cards/data-details-card/DataDetailsCard';
  2. import { getDataIds } from '../../requests/dataIdsRequest';
  3. import { getSingleData } from '../../requests/singleDataRequest';
  4. const SignelDataPage = (props) => {
  5. const data = props.selectedData;
  6. console.log(data);
  7. if (!data) {
  8. return <h1>{props.message}</h1>;
  9. }
  10. return <DataDetailsCard data={data.singleData} />;
  11. };
  12. export async function getStaticProps(context) {
  13. const dataId = context.params.dataId;
  14. try {
  15. const data = await getSingleData(dataId);
  16. return {
  17. props: {
  18. selectedData: data,
  19. },
  20. revalidate: 60,
  21. };
  22. } catch (error) {
  23. return {
  24. props: {
  25. selectedData: null,
  26. message: error.message,
  27. },
  28. revalidate: 60,
  29. };
  30. }
  31. }
  32. export async function getStaticPaths() {
  33. const firstPageDataIds = await getDataIds();
  34. console.log(firstPageDataIds);
  35. const paths = firstPageDataIds.dataIds.map((id) => ({
  36. params: { dataId: id },
  37. }));
  38. console.log(paths);
  39. return {
  40. paths: paths,
  41. fallback: 'blocking',
  42. };
  43. }
  44. export default SignelDataPage;